;:sys36864 ;.opt oo *= $c000 ziel =2049 ser1 =1 ; versionsnummer ser2 =2 ; sekundaer cint =65409 open =$ffc0 close =$ffc3 chkout =$ffc9 clrchn =$ffcc print =$ffd2 get =$ffe4 ptr =2 clall =$ffe7 axout =$bdcd strout =$ab1e anzprg =4 gr =5 setnam =$ffbd dn =$b8 namlen =183 sa =$b9 len =251 return =$aad7 tsys =158 bank =1 tmp =166 crs1 =$cc crs2 =$cd crs3 =$cf name =820 zeile =214 space =$ab3f vic =53248 bild =$d1 namber =$cb00 calc =$e9f0 tmp2 =181 scradr =648 scrmem =$d000 clrscr =$e544 sendnam =$f3d5 talk =$ffb4 sectalk =$ff96 iecin =$ffa5 status =$90 clsfil =$f642 fa =$ba key =198 clrx =59903 alle =139 lfd =140 chkin =$ffc6 fehler =$cf00 real =141 last =142 aktlen =786 lenpos =178 memend =$bf00 save =$ffd8 ioflag =157 reset =65532 base jmp losgehts help .byte "\x11 bitte geben sie die filenamen der max." .byt 13 .byte " 60 einzelfiles ein. '$': directory" .byt 13 .byte " '*': ende" .byt 13 .byte " '?': korrektur\x11" .byt 13,0 holnam1 .byt 13 .byte " name des " brk holnam2 .byte ". files ? " brk taste .byt 13 .byte " - weiter mit taste -" brk also .byte "\x13\x11\x11\x11\x11\x11 es wurden " brk also2 .byte " files erfasst." .byt 13 .byte " sind die alle auf einer diskette ? " brk gesask .byt 13 .byte "\x11 gesamtfile - name ? " brk oha .byte "\x13\x11\x11\x11\x11\x11 bearbeite file nr. " brk ohu .byt 13 .byte " name: " brk ohe .byt 13 .byte "\x11\x11\x11\x11 - bitte diskette einlegen -" brk csu .byte "\x13\x11\x11\x11\x11\x11\x11\x11\x11\x11 diskfehler: " brk spd .byte "\x11 (v) nochmal versuchen" hope .byt 13 .byte " (n) naechstes file" .byt 13 .byte " (e) ende" brk dahin .byt 13 .byte " ladeadresse : " brk loada .byte "\x13\x11\x11\x11\x11\x11\x11\x11\x11\x11 startadresse: " brk full .byt 13 .byte "\x11\x11 file zu lang - speicher voll !!\x11" brk jetzt .byte "\x13\x11\x11\x11\x11\x11 gesamtfile wird gespeichert" .byt 13 .byte "\x11 - bitte diskette einlegen -" brk alk .byt 13 .byte "\x11 speicherung beendet. alles okay.\x11" bob .byt 13 .byte " programm nochmal starten ? [j/n]" brk watnu .byt 13 .byte " (v) nochmal versuchen" .byt 13 .byte " (e) ende\x11\x11" brk kopf =* bas =* .word endp,1988 .byt tsys .byte "2061" brk endp =*-bas+ziel .word 0 jsr cint jsr clall lda #6 sta vic+32 sta vic+33 lda fa cmp #8 bcc set8b cmp #15 bcc okayb set8b lda #8 sta fa okayb lda #genb sta ptr sty ptr+1 jsr hol sta anzprg sty gr lda #txt1 jsr strout fileloop inc gr lda #txt2 jsr strout ldx gr lda #0 jsr axout lda #txt3 jsr strout ldx anzprg lda #0 jsr axout ldx ptr ldy ptr+1 jsr setnam jsr hol bne gon lda #txt4 jsr strout jsr clall ldx gr dex lda #0 jsr axout jmp return gon iny sty namlen sty sa sty dn getnam jsr hol beq hates inc namlen bne getnam qfileloop bcc fileloop hates lda #54 sta bank jsr open inc bank ldx #1 jsr chkout jsr hol jsr print jsr hol jsr print jsr hol sta len jsr hol sta len+1 saveprg lda len bne nochwas lda len+1 beq fertig dec len+1 nochwas dec len jsr hol jsr print clc bcc saveprg fertig jsr clrchn lda #1 jsr close clc bcc qfileloop hol =*-bas+ziel lda #54 sta bank ldy #0 lda (ptr),y inc ptr bne loop1 inc ptr+1 loop1 inc bank and #$ff rts txt1 =*-bas+ziel atxt1 .byte "\x05\x08\x8e\x93\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4" .byte "\x12archive v" .byt ser1+48,".",ser2+48,32 mode .byte "gen von nikolaus heusler" .byte "(c) nh-020988-arr ein nss programm" .byt 13 art .byte "\x11die files werden erzeugt...\x11\x11" brk txt2 =*-bas+ziel .byt 13 .byte "\x91file " brk txt3 =*-bas+ziel .byt 13 .byte "\x91\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1dvon " brk txt4 =*-bas+ziel .byt 13 .byte "\x91fertig !! files generiert\x9d\x9d\x9d\x9d\x9d\x9d\x9d\x9d\x9d\x9d\x9d\x9d\x9d\x9d\x9d\x9d\x9d\x9d" brk endkopf =* genb =*-bas+ziel schieb =endkopf-kopf-256 copydown ldy #0 copy1 lda kopf,y sta ziel,y lda kopf+schieb,y sta ziel+schieb,y iny bne copy1 rts getname jsr delber ldx #0 stx len keylp lda #0 sta crs1 wk jsr get beq wk ldx #2 stx crs2 wx ldx crs3 bne wx inc crs1 cmp #13 bne text ldx len beq keylp rts text cmp #20 bne nodel ldx len beq keylp jsr print dec len bpl keylp nodel cmp #32 bcs ok1 wrong jmp keylp ok1 tax bpl ok cmp #149 bcc wrong cmp #156 bcc ok cmp #160 bcc wrong ok ldx len cpx #16 bcs keylp sta name,x jsr print inc len bne keylp delber ldx #16 lda #"\xa0" d1 jsr print dex bne d1 ldx #16 lda #"\x9d" d2 jsr print dex bne d2 rts cax dex stx tmp2 lda #0 sta tmp+1 txa ldx #4 cax1 asl rol tmp+1 dex bne cax1 adc tmp2 sta tmp lda tmp+1 adc #>namber sta tmp+1 rts xout lda #0 jmp axout scroll ldx #11 scr1 jsr calc lda bild sta tmp lda bild+1 sta tmp+1 inx jsr calc ldy #39 scr2 lda (bild),y sta (tmp),y dey bpl scr2 cpx #23 bcc scr1 up lda #"\x91" jmp print put ldy #0 sta (ptr),y inc ptr bne raus inc ptr+1 raus rts close9 jsr clrchn lda #9 jmp close dir ldy #0 sty tmp sty tmp2 lda scradr sta tmp+1 lda #>scrmem sta tmp2+1 ldx #48 sei stx bank ldx #4 lda zeile pha copy3 lda (tmp),y sta (tmp2),y dey bne copy3 inc tmp+1 inc tmp2+1 dex bne copy3 ldx #55 stx bank cli jsr clrscr ldx #name lda len jsr setnam lda #$60 sta sa jsr sendnam lda fa jsr talk lda sa jsr sectalk lda #0 sta status ldy #3 l1 sty tmp jsr iecin sta tmp+1 ldy status bne l4 jsr iecin ldy status bne l4 ldy tmp dey bne l1 ldx tmp+1 jsr axout jsr space l3 jsr iecin ldx status bne l4 tax beq l2 jsr print bcc l3 l2 jsr return ldy #2 bne l1 l4 jsr clsfil lda #taste jsr strout jsr waitkey lda #1 sta vic+33 jsr clrscr lda #6 sta vic+33 pla sta zeile ldx #48 sei stx bank ldx #4 lda #>scrmem sta tmp+1 ldy #0 sty tmp sty tmp2 lda scradr sta tmp2+1 copy2 lda (tmp),y sta (tmp2),y dey bne copy2 inc tmp+1 inc tmp2+1 dex bne copy2 ldx #55 stx bank cli rts waitkey lda #0 sta key wkk cmp key beq wkk dec key rts losgehts jsr cint jsr clall lda #6 sta vic+32 sta vic+33 lda fa cmp #8 bcc set8 cmp #15 bcc okay set8 lda #8 sta fa okay lda #0 sta ioflag sta art sta anzprg lda #32 ldx #2 clrmod sta mode,x dex bpl clrmod lda #atxt1 jsr strout lda #17 sta art lda #"g" sta mode lda #"e" sta mode+1 lda #"n" sta mode+2 lda #help jsr strout eing1 inc anzprg eing2 lda #holnam1 jsr strout ldx anzprg cpx #10 bcs gut jsr space gut jsr xout lda #holnam2 jsr strout jsr getname lda name cmp #"*" bne noend lda anzprg cmp #3 bcs jaend stop jsr up bcc eing2 noend cmp #"?" bne nokor lda zeile cmp #12 bcc stop dec anzprg jsr up bcc stop nokor cmp #"$" bne nodir jsr dir jmp stop nodir ldx anzprg cpx #61 bcs stop jsr cax ldy len lda #0 sta (tmp),y dey transnam lda name,y sta (tmp),y dey bpl transnam lda zeile cmp #23 bcc eing1 jsr scroll jmp eing1 jaend ldx #5 clrpag jsr clrx inx cpx #24 bcc clrpag lda #also jsr strout dec anzprg ldx anzprg jsr xout lda #also2 jsr strout lda #0 sta key wjn jsr get cmp #"j" beq off cmp #"n" bne wjn off jsr print sec sbc #"j" sta alle lda #gesask jsr strout jsr getname lda name cmp #"*" beq jaend cmp #"?" beq jaend lda #0 sta lfd sta real jsr copydown lda #genb sta ptr sty ptr+1 jsr put ldy #15 sty sa sty dn lda #0 sta namlen jsr open main inc lfd ldx lfd dex cpx anzprg bne sleep jmp ende sleep ldx #5 lda ptr sta last lda ptr+1 sta last+1 clrp2 jsr clrx inx cpx #19 bcc clrp2 lda #oha jsr strout lda #0 ldx lfd jsr xout lda #ohu jsr strout ldx lfd jsr cax lda tmp ldy tmp+1 jsr strout lda alle bmi weiter lda #ohe jsr strout jsr waitkey ldx #11 jsr clrx lda alle bne weiter lda #-1 sta alle weiter ldy #-1 wtr iny lda (tmp),y sty tmp2 jsr put ldy tmp2 tax bne wtr tya ldx tmp ldy tmp+1 jsr setnam lda #0 sta sa lda #9 sta dn jsr open ldx #15 jsr chkin ldx #-1 geterr inx jsr get sta fehler,x cmp #13 bne geterr lda #0 sta fehler+1,x jsr clrchn lda fehler cmp #"0" beq aechtz jsr close9 lda #csu jsr strout lda #fehler jsr strout lda #spd jsr strout gti jsr get cmp #"e" bne noe halt lda last sta ptr lda last+1 sta ptr+1 jmp ende noe cmp #"v" bne nov dec lfd qmain lda last sta ptr lda last+1 sta ptr+1 jmp main nov cmp #"n" bne gti beq qmain aechtz ldx #9 jsr chkin jsr get jsr put pha jsr get jsr put pha lda #loada jsr strout pla tay pla tax tya jsr axout lda ptr sta lenpos lda ptr+1 sta lenpos+1 lda #0 sta aktlen sta aktlen+1 jsr put jsr put lda #dahin jsr strout ldx ptr lda ptr+1 jsr axout loadloop jsr iecin tax lda status lsr lsr bcs abort txa jsr put inc aktlen bne noinc inc aktlen+1 noinc lda ptr+1 cmp #>memend bcc loadloop jsr close9 lda #full jsr strout lda #hope jsr strout lda #0 sta key getne jsr get cmp #"e" beq qhalt cmp #"n" bne getne jmp qmain qhalt jmp halt abort jsr close9 ldy #0 lda aktlen sta (lenpos),y iny lda aktlen+1 sta (lenpos),y inc real jmp main ende lda #0 jsr put lda real sta genb end ldx #5 clrpg3 jsr clrx inx cpx #19 bcc clrpg3 lda #jetzt jsr strout jsr waitkey ldx #7 jsr clrx lda len ldx #name jsr setnam lda #54 sta bank ldx ptr ldy ptr+1 lda #ziel sta tmp+1 lda #tmp jsr save inc bank ldx #15 jsr chkin ldx #-1 geterr2 inx jsr get sta fehler,x cmp #13 bne geterr2 lda #0 sta fehler+1,x jsr clrchn lda fehler cmp #"0" beq aechtz2 jsr close9 lda #csu jsr strout lda #fehler jsr strout lda #watnu jsr strout lda #0 sta key wat jsr get cmp #"e" beq fort cmp #"v" bne wat jmp end aechtz2 lda #15 jsr close lda #alk sout jsr strout lda #0 sta key erwjn jsr get cmp #"n" bne live jmp (reset) live cmp #"j" bne erwjn jmp (base+1) fort lda #bob bne sout